package com.jvm;

public class JVM_12_初始化 {

    public static void main(String[] args) {
        System.err.println(T.count);
    }

}

/**
 * 在这种情况下结果是 2
 * 
 * 因为先初始化 T ，首先赋默认值，count = 0，然后创建对象，构造方法被调用，count = 1,最后赋初始值，count = 2
 * 
 */

class T {
    public static T t = new T();
    public static int count = 2;

    private T() {
        count++;
    }
}

/**
 * 在这种情况下结果是 3
 * 
 * 先给 count 赋予默认值，count = 0，然后给count赋予初始值，count = 2 ,最后创建 T 对象，调用构造方法，count = 3
 */
// class T {
// public static int count = 2;
// public static T t = new T();

// private T() {
// count++;
// }
// }
